





class GRAFIIKKA
{
    private:
        //Kaikki saatavilla olevat Malli3Dt
        unsigned int Malli3DLKM;
        MALLI3D *Malli3DPuskuri;

        //Kaikki saatavilla olevat Tekstuurit
        unsigned int TekstuurienLKM;
        TEKSTUURI *TekstuuriPuskuri;
        
        //yhdellä framella piirrettävät Objektit
        unsigned int ObjektienLKM;
        OBJEKTI **ObjektiPuskuri;
        
        //yhdellä framella piirrettävät Kuvat
        unsigned int KuvienLKM;
        KUVA *KuvaPuskuri;
        
        unsigned int KameroidenLKM;
        KAMERA *Kamerat;
        unsigned int AktiivinenKamera;
        
        int RuudunLeveys, RuudunKorkeus;
        
        unsigned int FonttienLKM;
        FONTTI *Fontit;
        
        KUVA Osoitin;
        bool OsoitinNakyvissa;
        
        public:
    
        void Alusta( int Leveys, int Korkeus );
        void Paivita( char *Otsikko, double HiiriX, double HiiriY, double KierrosAika );
        void AlustaMalli3DPuskuri();
        void AlustaTekstuuriPuskuri();

        void LisaaKamera( KAMERA UusiKamera );
        void KytkeKamera( unsigned int Ind );
        KAMERA &Kamera( unsigned int Ind );
        KAMERA &Kamera();
        
        void LisaaObjekti( OBJEKTI &UusiObjekti );
        void TyhjennaObjektiPuskuri();

        void LisaaKuva( KUVA &UusiKuva, double X, double Y, double KokoKerroin = 1, VARI Vari = Valkoinen);
        void PoistaKuva();
        void TyhjennaKuvaPuskuri();
        
        void AlustaFontit();
        void TulostaTeksti( TEKSTI &T, double X, double Y, KESKITYSTAPA KeskitysTapa = YlaVasen, int Fontti = 0, double KokoKerroin = 1 );
        void TulostaTeksti( TEKSTI &T, double X, double Y, HIIRI Hiiri, KESKITYSTAPA KeskitysTapa = YlaVasen, int Fontti = 0, double KokoKerroin = 1 );
        FONTTI &Fontti();
        
        void NaytaOsoitin();
        void PiilotaOsoitin();
        
};











































